Шаг 4 - Получение центра полигона.

Автор Каев А. Г.

Немного изменим наш проект, что бы получить центр полигона.

theView = av.FindDoc("View1")
if (theView<>nil) then
 theTheme = theView.FindTheme("base.shp") 
 if (theTheme<>nil) then

  theFTab     = theTheme.GetFTab
  shapeField  = theFTab.FindField( "Shape" )
  for each recNum in theFTab
       currentShape = theFTab.ReturnValue( shapeField, recNum )
       pt=currentShape.ReturnCenter 
       MsgBox.Info( pt.GetX.AsString + " " + pt.GetY.AsString, "")
  end

   
 else
   MsgBox.Info( "No Theme", "")
 end

else
  MsgBox.Info( "No View", "")
end

Смотрим результат.

4_1.gif

Откуда я взял эти функции. Дело в том, что при получении объекта, объекта зависит от темы. Вот мы его получаем.

currentShape = theFTab.ReturnValue( shapeField, recNum )

Тема у нас площадная, поэтому мы получаем объект полигон. У объекта полигон есть метод.

aPolygon.ReturnCenter 

Этот метод возвращает точку, из которой можно извлечь X и Y.

MsgBox.Info( pt.GetX.AsString + " " + pt.GetY.AsString, "")

Hosted by uCoz